package com.settlement.system.model.entity.common;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.List;

/**
 * @author author
 */
@JsonInclude(Include.NON_NULL)
@JsonIgnoreProperties(
        value = {"hibernateLazyInitializer", "handler", "fieldHandler"},
        ignoreUnknown = true
)
public class UCSystemMenu implements Serializable {
    @ApiModelProperty(
            value = "id",
            notes = "id"
    )
    private String id;
    @ApiModelProperty(
            value = "id",
            notes = "UC菜单名称"
    )
    private String text;
    @ApiModelProperty(
            value = "id",
            notes = "UC模块编码"
    )
    private String menuCode;
    @ApiModelProperty(
            value = "id",
            notes = "UC繁体菜单名称"
    )
    private String zhHkText;
    @ApiModelProperty(
            value = "id",
            notes = "UC英文菜单名称"
    )
    private String enUsText;
    @ApiModelProperty(
            value = "id",
            notes = "UC模块编码"
    )
    private String moduleCode;
    @ApiModelProperty(
            value = "id",
            example = "模块拥有权限的操作项"
    )
    private List operationList;
    @ApiModelProperty(
            value = "id",
            notes = "UC菜单url"
    )
    private String url;
    @ApiModelProperty(
            value = "id",
            notes = "UC子菜单"
    )
    private List<UCSystemMenu> children;

    public String getId() {
        return this.id;
    }

    public String getText() {
        return this.text;
    }

    public String getMenuCode() {
        return this.menuCode;
    }

    public String getZhHkText() {
        return this.zhHkText;
    }

    public String getEnUsText() {
        return this.enUsText;
    }

    public String getModuleCode() {
        return this.moduleCode;
    }

    public List getOperationList() {
        return this.operationList;
    }

    public String getUrl() {
        return this.url;
    }

    public List<UCSystemMenu> getChildren() {
        return this.children;
    }

    public void setId(final String id) {
        this.id = id;
    }

    public void setText(final String text) {
        this.text = text;
    }

    public void setMenuCode(final String menuCode) {
        this.menuCode = menuCode;
    }

    public void setZhHkText(final String zhHkText) {
        this.zhHkText = zhHkText;
    }

    public void setEnUsText(final String enUsText) {
        this.enUsText = enUsText;
    }

    public void setModuleCode(final String moduleCode) {
        this.moduleCode = moduleCode;
    }

    public void setOperationList(final List operationList) {
        this.operationList = operationList;
    }

    public void setUrl(final String url) {
        this.url = url;
    }

    public void setChildren(final List<UCSystemMenu> children) {
        this.children = children;
    }

    public UCSystemMenu() {
    }

    public UCSystemMenu(final String id, final String text, final String menuCode, final String zhHkText, final String enUsText, final String moduleCode, final List operationList, final String url, final List<UCSystemMenu> children) {
        this.id = id;
        this.text = text;
        this.menuCode = menuCode;
        this.zhHkText = zhHkText;
        this.enUsText = enUsText;
        this.moduleCode = moduleCode;
        this.operationList = operationList;
        this.url = url;
        this.children = children;
    }

    @Override
    public String toString() {
        return "UCSystemMenu(id=" + this.getId() + ", text=" + this.getText() + ", menuCode=" + this.getMenuCode() + ", zhHkText=" + this.getZhHkText() + ", enUsText=" + this.getEnUsText() + ", moduleCode=" + this.getModuleCode() + ", operationList=" + this.getOperationList() + ", url=" + this.getUrl() + ", children=" + this.getChildren() + ")";
    }

    @Override
    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof UCSystemMenu)) {
            return false;
        } else {
            UCSystemMenu other = (UCSystemMenu)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label119: {
                    Object this$id = this.getId();
                    Object other$id = other.getId();
                    if (this$id == null) {
                        if (other$id == null) {
                            break label119;
                        }
                    } else if (this$id.equals(other$id)) {
                        break label119;
                    }

                    return false;
                }

                Object this$text = this.getText();
                Object other$text = other.getText();
                if (this$text == null) {
                    if (other$text != null) {
                        return false;
                    }
                } else if (!this$text.equals(other$text)) {
                    return false;
                }

                label105: {
                    Object this$menuCode = this.getMenuCode();
                    Object other$menuCode = other.getMenuCode();
                    if (this$menuCode == null) {
                        if (other$menuCode == null) {
                            break label105;
                        }
                    } else if (this$menuCode.equals(other$menuCode)) {
                        break label105;
                    }

                    return false;
                }

                Object this$zhHkText = this.getZhHkText();
                Object other$zhHkText = other.getZhHkText();
                if (this$zhHkText == null) {
                    if (other$zhHkText != null) {
                        return false;
                    }
                } else if (!this$zhHkText.equals(other$zhHkText)) {
                    return false;
                }

                label91: {
                    Object this$enUsText = this.getEnUsText();
                    Object other$enUsText = other.getEnUsText();
                    if (this$enUsText == null) {
                        if (other$enUsText == null) {
                            break label91;
                        }
                    } else if (this$enUsText.equals(other$enUsText)) {
                        break label91;
                    }

                    return false;
                }

                Object this$moduleCode = this.getModuleCode();
                Object other$moduleCode = other.getModuleCode();
                if (this$moduleCode == null) {
                    if (other$moduleCode != null) {
                        return false;
                    }
                } else if (!this$moduleCode.equals(other$moduleCode)) {
                    return false;
                }

                label77: {
                    Object this$operationList = this.getOperationList();
                    Object other$operationList = other.getOperationList();
                    if (this$operationList == null) {
                        if (other$operationList == null) {
                            break label77;
                        }
                    } else if (this$operationList.equals(other$operationList)) {
                        break label77;
                    }

                    return false;
                }

                label70: {
                    Object this$url = this.getUrl();
                    Object other$url = other.getUrl();
                    if (this$url == null) {
                        if (other$url == null) {
                            break label70;
                        }
                    } else if (this$url.equals(other$url)) {
                        break label70;
                    }

                    return false;
                }

                Object this$children = this.getChildren();
                Object other$children = other.getChildren();
                if (this$children == null) {
                    if (other$children != null) {
                        return false;
                    }
                } else if (!this$children.equals(other$children)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(final Object other) {
        return other instanceof UCSystemMenu;
    }

    @Override
    public int hashCode() {
        int result = 1;
        Object $id = this.getId();
        result = result * 59 + ($id == null ? 43 : $id.hashCode());
        Object $text = this.getText();
        result = result * 59 + ($text == null ? 43 : $text.hashCode());
        Object $menuCode = this.getMenuCode();
        result = result * 59 + ($menuCode == null ? 43 : $menuCode.hashCode());
        Object $zhHkText = this.getZhHkText();
        result = result * 59 + ($zhHkText == null ? 43 : $zhHkText.hashCode());
        Object $enUsText = this.getEnUsText();
        result = result * 59 + ($enUsText == null ? 43 : $enUsText.hashCode());
        Object $moduleCode = this.getModuleCode();
        result = result * 59 + ($moduleCode == null ? 43 : $moduleCode.hashCode());
        Object $operationList = this.getOperationList();
        result = result * 59 + ($operationList == null ? 43 : $operationList.hashCode());
        Object $url = this.getUrl();
        result = result * 59 + ($url == null ? 43 : $url.hashCode());
        Object $children = this.getChildren();
        result = result * 59 + ($children == null ? 43 : $children.hashCode());
        return result;
    }
}
